layui.use(['tree','layer','treeSelect','iconPicker','table','form','laytpl','element'], function(){
    var $ = layui.$
        ,layer = layui.layer
        ,admin = layui.admin
        ,table = layui.table
        ,element = layui.element
        ,form = layui.form
        ,laytpl = layui.laytpl;
    var delFlag = null;
    var iconPicker = layui.iconPicker;//图标选择

    var treeSelect= layui.treeSelect;//树形下拉框



    //查询菜单数据
    var treeData = {
        elem: '#tree' //指定元素
        , target: '_blank' //是否新选项卡打开（比如节点返回href才有效）
        , click: function (item) { //点击节点回调
            var getTplForm = formBox.innerHTML;//隐藏的表单元素
            var viewForm = document.getElementById('viewForm');//展示表单的结点视图元素

            $.ajax({
                //根据parentId查对应类别，从而拿到父类结点的名称
                url: '/produceCategory/'+item.parentId,
                type: 'GET',
                success: function (data) {
                    if(data!=null) {
                        //将渲染放到ajax中
                        laytpl(getTplForm).render(item, function (html) {
                            //渲染菜单的数据到表单元素
                            treeSelect.render({
                                elem: '#tree-select',
                                data: '/produceCategory/treelist',
                                type: 'get',
                                placeholder: data.name,// 占位符
                                search: true,// 是否开启搜索功能：true/false，默认false
                                click: function(d){
                                    $("#tree-select").val(d.current.id);
                                },
                                success: function () { // 加载完成后的回调函数
                                    $("#tree-select").val(data.id);
                                }
                            });

                            viewForm.innerHTML = html;//替换成隐藏部分的html
                        });
                    }
                }})

            form.render(null, 'component-form-element');
            //绑定生成表单后的事件

            //删除结点
            delFlag = item.id;
        },
        nodes:null
    };
    //异步加载菜单数据
    $.get("/produceCategory/tree",function(data) {
        //数据格式化，替换href字段，使得layui框架无法自动生成链接
      //  var jsonStr = JSON.stringify(data.data);
      //  var menuStr = jsonStr.replace(/href/g,"hrefStr");

        var menuStr = JSON.stringify(data.data);
        treeData.nodes = JSON.parse(menuStr);
        /*treeData.nodes = data.data;*/
        layui.tree(treeData);
    });



    //删除选中菜单信息
    $(".delBtn").click(function(){
        if(delFlag != null) {
            layer.confirm('确定删除选中的类别项？', {icon: 3, title: '提示信息'}, function (tips) {
                location.reload();
                layer.close(tips);
                $.get('/produceCategory/delete?id=' + delFlag,function (data) {
                    if(data.code == 200) {
                        layer.msg("删除成功！");
                        //刷新页面
                        location.reload();
                    } else {
                        layer.msg("删除失败！");
                    }
                });
            });
        }else {
            top.layer.msg("请选择要删除的菜单项");
        }
        return false;
    });

    //修改菜单信息
    form.on('submit(edit)', function(data){
        var index = top.layer.msg('数据提交中，请稍候',{icon: 16,time:false,shade:0.8});
        $.ajax({
            url: '/produceCategory/edit',
            type:'POST',
            data:data.field,
            success: function (data) {
                if(data.code == 200) {
                    top.layer.close(index);
                    top.layer.msg("修改成功！");
                    //刷新页面
                    location.reload();
                } else {
                    top.layer.close(index);
                    top.layer.msg("添加失败！");
                }
            },
            error:function () {
                top.layer.close(index);
                top.layer.msg("无法连接服务器！");
            }
        });
        return false;
    });

    //添加菜单元素
    $(".addBtn").click(function (){
        var index = layui.layer.open({
            title : "添加菜单",
            type : 2,
            content : "categoryAdd",
            success : function(){
                setTimeout(function(){
                    layui.layer.tips('点击此处返回', '.layui-layer-setwin .layui-layer-close', {
                        tips: 3
                        });
                    },500)
                }
            });
            layui.layer.full(index);
            //改变窗口大小时，重置弹窗的宽高，防止超出可视区域（如F12调出debug的操作）
            $(window).on("resize",function(){
                layui.layer.full(index);
        });
    });

    //添加图标
    iconPicker.render({
        // 选择器，推荐使用input
        elem: '#iconPickerEdit',
        // 数据类型：fontClass/unicode，推荐使用fontClass
        type: 'fontClass',
        // 是否开启搜索：true/false
        search: true,
        // 是否开启分页
        page: true,
        // 每页显示数量，默认12
        limit: 12,
        // 点击回调
        click: function (data) {
            $("#iconPicker").val('layui-icon ' + data.icon);
        }
    });
});

